﻿#define _CRT_SECURE_NO_WARNINGS

//#include <stdio.h>
//
//int main()
//{
//	int i = 0;
//	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
//	for (i = 0; i <= 12; i++)
//	{
//		arr[i] = 0;
//		printf("hello bit\n");
//	}
//	return 0;
//}

//喝汽水，1瓶汽水1元，2个空瓶可以换一瓶汽水，
//给20元，可以喝多少汽水（编程实现）。

//#include <stdio.h>
//
//int main()
//{
//	int money = 0;
//	scanf("%d", &money);
//
//	int bottle = money;//初始买到的瓶数
//	int empty = money;//初始空瓶
//	while (empty >= 2)
//	{
//		int newbottles = empty / 2;//空瓶兑换
//		bottle = bottle + newbottles;//初始+空瓶兑换
//		empty = empty % 2 + newbottles;//上次剩余空瓶+新空瓶
//	}
//	printf("%d", bottle);
//	return 0;
//}


#include <stdio.h>
//err
//int main()
//{
//	//打印菱形1
//	for (int i = 1; i <= 7; i++)
//	{
//		for (int j = 1; j <=7; j++)
//		{
//			if (i + j >= 8)
//				printf("*");
//			else
//				printf(" ");
//		}
//		printf("\n");
//	}
//	//打印菱形2
//	for (int i = 7; i <= 14; i++)
//	{
//		for (int j = 7; j <= 14; j++)
//		{
//			if (i>=j)
//				printf("*");
//			else
//				printf(" ");
//		}
//		printf("\n");
//	}
//	//打印菱形3
//
//	for (int i = 1; i <= 7; i++)
//	{
//		for (int j = 1; j <= 7; j++)
//		{
//			if (i < j)
//				printf("*");
//			else
//				printf(" ");
//		}
//		printf("\n");
//	}
//	return 0;
//}
//err 

#include <stdio.h>

//int main()
//{
//    int n = 7;  // 菱形的半高
//
//    // 上半部分：两个三角形
//    for (int i = 1; i <= n; i++)
//    {
//        // 左上三角形：空格
//        for (int j = 1; j <= n - i; j++)
//        {
//            printf(" ");
//        }
//        // 右上三角形：星号
//        for (int j = 1; j <= i; j++)
//        {
//            printf("*");
//        }
//        // 左下三角形：星号（去掉重复的中间列）
//        for (int j = 1; j < i; j++)
//        {
//            printf("*");
//        }
//        // 右下三角形：空格
//        for (int j = 1; j <= n - i; j++)
//        {
//            printf(" ");
//        }
//        printf("\n");
//    }
//
//    // 下半部分：两个三角形
//    for (int i = n - 1; i >= 1; i--)
//    {
//        // 左上三角形：空格
//        for (int j = 1; j <= n - i; j++)
//        {
//            printf(" ");
//        }
//        // 右上三角形：星号
//        for (int j = 1; j <= i; j++)
//        {
//            printf("*");
//        }
//        // 左下三角形：星号（去掉重复的中间列）
//        for (int j = 1; j < i; j++)
//        {
//            printf("*");
//        }
//        // 右下三角形：空格
//        for (int j = 1; j <= n - i; j++)
//        {
//            printf(" ");
//        }
//        printf("\n");
//    }
//
//    return 0;
//}


//#include <stdio.h>
//
//int main()
//{
//    int n = 5;
//
//    printf("带上空格的上三角形：\n");
//    for (int i = 1; i <= n; i++)
//    {
//        // 打印空格（居中对齐）
//        for (int j = 1; j <= n - i; j++)
//        {
//            printf(" ");
//        }
//        // 打印星号
//        for (int j = 1; j <= i; j++)
//        {
//            printf("*");
//        }
//        printf("\n");
//    }
//
//    return 0;
//}
//#include <stdio.h>
//
//int main()
//{
//    int n = 5;  // 三角形的高度
//
//    printf("上三角形：\n");
//    for (int i = 1; i <= n; i++)
//    {
//        // 第i行打印i个星号
//        for (int j = 1; j <= i; j++)
//        {
//            printf("*");
//        }
//        printf("\n");
//    }
//
//    return 0;
//}

//#include <stdio.h>
//
//int main()
//{
//    int n = 5;
//
//    printf("左上三角形：\n");
//    for (int i = 1; i <= n; i++)
//    {
//        for (int j = 1; j <= n - i + 1; j++)
//        {
//            printf("*");
//        }
//        printf("\n");
//    }
//
//    printf("\n右上三角形：\n");
//    for (int i = 1; i <= n; i++)
//    {
//        for (int j = 1; j <= i - 1; j++)
//        {
//            printf(" ");
//        }
//        for (int j = 1; j <= n - i + 1; j++)
//        {
//            printf("*");
//        }
//        printf("\n");
//    }
//
//    printf("\n左下三角形：\n");
//    for (int i = 1; i <= n; i++)
//    {
//        for (int j = 1; j <= i; j++)
//        {
//            printf("*");
//        }
//        printf("\n");
//    }
//
//    printf("\n右下三角形：\n");
//    for (int i = 1; i <= n; i++)
//    {
//        for (int j = 1; j <= n - i; j++)
//        {
//            printf(" ");
//        }
//        for (int j = 1; j <= i; j++)
//        {
//            printf("*");
//        }
//        printf("\n");
//    }
//
//    return 0;
//}
//
//#include <stdio.h>

//int main()
//{
//    int n = 7;
//
//    printf("菱形（由上三角和下三角组成）：\n");
//
//    // 上三角部分
//    for (int i = 1; i <= n; i++)
//    {
//        // 空格三角形（左上）
//        for (int j = 1; j <= n - i; j++)
//        {
//            printf(" ");
//        }
//        // 星号三角形（右上+左下）
//        for (int j = 1; j <= 2 * i - 1; j++)
//        {
//            printf("*");
//        }
//        printf("\n");
//    }
//
//    // 下三角部分
//    for (int i = n - 1; i >= 1; i--)
//    {
//        // 空格三角形（左上）
//        for (int j = 1; j <= n - i; j++)
//        {
//            printf(" ");
//        }
//        // 星号三角形（右上+左下）
//        for (int j = 1; j <= 2 * i - 1; j++)
//        {
//            printf("*");
//        }
//        printf("\n");
//    }
//
//    return 0;
//}


//#include <stdio.h>
//
//int main()
//{
//    int n = 5;
//
//    printf("带上空格的上三角形：\n");
//    for (int i = 1; i <= n; i++)
//    {
//        // 打印空格（居中对齐）
//        for (int j = 1; j <= n - i; j++)
//        {
//            printf(" ");
//        }
//        // 打印星号
//        for (int j = 1; j <= i; j++)
//        {
//            printf("*");
//        }
//        printf("\n");
//    }
//
//    return 0;
//}


//
//求出0～100000之间的所有“水仙花数”并输出。
//
//“水仙花数”是指一个n位数，其各位数字的n次方之和确好等于该数本身
//如 : 153＝1 ^ 3＋5 ^ 3＋3 ^ 3，则153是一个“水仙花数”。
//#include <stdio.h>
//#include "math.h"
//int main()
//{
//	for (long int i = 0; i <= 100000; i++)
//	{
//		long long sum = 0;
//		int count = 0;
//		long long n = i;
//		//产生0-100000的数字
//		while (n)//计算i是几位数
//		{
//			n = n / 10;
//			count++;
//		}
//		n = i;
//		while (n)//计算相加
//		{
//			sum += pow(n % 10, count);
//			n = n / 10;
//		}
//		if (sum == i)
//		{
//			printf("%d ", i);
//		}
//		
//	}
//	return 0;
//}
//求Sn = a + aa + aaa + aaaa + aaaaa的前5项之和，其中a是一个数字，
//
//例如：2 + 22 + 222 + 2222 + 22222


//#include <stdio.h>
//
//int main()
//{
//	int a = 0;
//	scanf("%d", &a);
//
//	int i = 0;
//	int a2 = a;
//	int sum = 0;
//	for (i = 1; i <=5; i++)
//	{
//		sum += a;
//		printf("%d ", a);
//		a = a * 10 + a2;
//	}
//	printf("%d", sum);
//	return 0;
//}
//#include<stdio.h>
//
////如果n分别是1,2,3,4,5...10,求出每个数的阶乘，再求和就好了 
//   //在上⾯的代码上改造
//int main()
//{
//	int n = 0;
//	int i = 1;
//	int sum = 0;
//	int ret = 1;
//	for (n = 1; n <= 3; n++)
//	{
//		int ret = 1;
//		for (i = 1; i <= n; i++)
//		{
//			ret *= i;
//		}
//		sum += ret;
//	}
//	printf("%d\n", sum);
//
//	 return 0; 
// } 
//运⾏结果应该是错的？